﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using com.clinica.business.BE.acttar;
using com.clinica.business.BE.comun;
using LiclUtil;
using LiclActTar;
using LiclActTar.Views;
using System.Text;

namespace wesiGestClinica.acttar.Controles
{
    public partial class UCBuscartarifa : System.Web.UI.UserControl
    {
        LiclTarifariosController oController = new LiclTarifariosController();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                try
                {
                    lbl_TituloModulo.Text = "Búsqueda de Tarifas";
                    TipoBus = 1;
                    IniciarControles();                    
                    if (TipoBus == 2 && txt_DescripcionControl.Text.Trim() != string.Empty)
                        btnBuscarControl_Click(null, null);
                }
                catch (Exception ex)
                {

                }                
            }
            lblMensaje.Visible = false;

            dg_TarifariosControl.RowCommand += new GridViewCommandEventHandler(dg_TarifariosControl_RowCommand);
        }
        
        #region Metodos
        public void IniciarControles()
        {
            txt_NumeroSolicitud.Text = string.Empty;
            txt_DescripcionControl.Text = string.Empty;
            if (TipoBus == 1)
            {
                rbu_PorNumero.Checked = true;
                rbu_NumeroSol_CheckedChanged(null, null);
            }
            else
            {
                rbu_PorDescripcion.Checked = true;
                rbu_Descripcion_CheckedChanged(null, null);
            }
            TarifarioBE obj = new TarifarioBE();
            List<TarifarioBE> lstTarifario = new List<TarifarioBE>();
            lstTarifario.Add(obj);
            dg_TarifariosControl.DataSource = lstTarifario;
            dg_TarifariosControl.DataBind();
        }
        public void BuscarTarifa(TarifarioBE obj)
        {
            List<TarifarioBE> lstTarifa = new List<TarifarioBE>();
            lstTarifa = oController.Obtener_Tarifarios_Origen(obj);
            if (lstTarifa.Count > 0)
            {
                dg_TarifariosControl.DataSource = lstTarifa;
                dg_TarifariosControl.DataBind();
                lbl_CantidadControl.Text = lstTarifa.Count.ToString() + " Registros(s) encontrados";
            }
            else
            {
                lblMensaje.Visible = true;
                lblMensaje.Text = lblMensaje.Text + " No se ha encontrado tarifarios para el criterio de busqueda.";
                lbl_CantidadControl.Text = "0 Registros(s) encontrados";
            }
        }
        #endregion
        #region Eventos
        protected void rbu_NumeroSol_CheckedChanged(object sender, EventArgs e)
        {
            TipoBus = 1;
            txt_NumeroSolicitud.ReadOnly = true;
            txt_NumeroControl.ReadOnly = false;            
            rbu_PorDescripcion.Checked = false;
            txt_Descripcion.Text = string.Empty;            
            txt_NumeroSolicitud.Focus();
        }

        protected void rbu_Descripcion_CheckedChanged(object sender, EventArgs e)
        {
            TipoBus = 2;
            txt_NumeroSolicitud.ReadOnly = true;
            txt_Descripcion.ReadOnly = false;
            rbu_PorNumero.Checked = false;
            txt_NumeroSolicitud.Text = string.Empty;
            txt_Descripcion.Focus();
        }

        protected void btnBuscarControl_Click(object sender, EventArgs e)
        {
            TarifarioBE oTarifa = new TarifarioBE();
            dg_TarifariosControl.DataSource = new List<TarifarioBE>();
            dg_TarifariosControl.DataBind();

            if (rbu_PorDescripcion.Checked)
            {
                if (txt_Descripcion.Text.Trim() != string.Empty )
                {
                    oTarifa.Descripcion = txt_DescripcionControl.Text.Trim();
                    BuscarTarifa(oTarifa);
                }
                else
                {
                    lblMensaje.Visible = true;
                    lblMensaje.Text = " Debe ingresar al menos una descripción.";

                }
            }
            else
            {
                if (txt_NumeroSolicitud.Text.Trim() != string.Empty)
                {
                    try
                    {
                        oTarifa.NumeroSolicitud = int.Parse(txt_NumeroSolicitud.Text.Trim());
                    }
                    catch (Exception)
                    {
                        lblMensaje.Visible = true;
                        lblMensaje.Text = " Debe ingresar un Numero de Tarifa.";
                    }
                    BuscarTarifa(oTarifa);
                }
                else
                {
                    lblMensaje.Visible = true;
                    lblMensaje.Text = " Debe ingresar un Numero de Tarifa.";
                }
            }
            //       BuscarPaciente(oPaciente);
        }
        void dg_TarifariosControl_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            
        }
        #endregion

        #region Propiedades
        public int TipoBus { get; set; }

        public TextBox txt_Descripcion
        {
            get { return txt_DescripcionControl; }
            set { txt_DescripcionControl = value; }
        }
        public TextBox txt_NumeroSolicitud
        {
            get { return txt_NumeroControl; }
            set { txt_NumeroControl = value; }
        }
      
        public Button btn_Buscar
        {
            get { return btnBuscarControl; }
            set { btnBuscarControl = value; }
        }
        public RadioButton rbu_PorNumero
        {
            get { return rbu_NumeroSol; }
            set { rbu_NumeroSol = value; }
        }
        public RadioButton rbu_PorDescripcion
        {
            get { return rbu_Descripcion; }
            set { rbu_Descripcion = value; }
        }
        public GridView dgTarifas
        {
            get { return dg_TarifariosControl; }
            set { dg_TarifariosControl = value; }
        }
        public HiddenField hdfCodigo
        {
            get { return hdfCodigoControl; }
            set { hdfCodigoControl = value; }
        }
        public HiddenField hdfDescripcion
        {
            get { return hdfDescripcionControl; }
            set { hdfDescripcionControl = value; }
        }
        #endregion

        
    }
}